FROM openjdk:8u171-jre-alpine
MAINTAINER shadowedge <gulixing@msn.com>
# 接收从docker build命令传递的参数值
# 容器服务端口
ARG SERVER_PORT
# 服务版本
ARG SERVICE_VERSION
# [DOCKER]文件名称
ARG FILE_NAME
# [DOCKER]服务数据目录
ARG SERVICE_DATA
# 声明变量
ENV FILE_NAME=${FILE_NAME}
ENV SERVICE_DATA=${SERVICE_DATA}
# 将application.properties需要的变量命名翻译成SpringBoot支持的格式
ENV SERVER_PORT=${SERVER_PORT}
ENV SERVICE_VERSION=${SERVICE_VERSION}

# 指定容器在运行时监听的端口
EXPOSE ${SERVER_PORT}
# 创建app运行目录：使用数组模式，避免docker对命令自动添加"/bin/sh -c"前缀引发不必要的错误
RUN ["mkdir", "/app"]
# 创建数据Volumn：便于外部文件操作
VOLUME /${SERVICE_DATA}
COPY ${FILE_NAME}.jar /app
# 设置工作目录
WORKDIR /app
ENTRYPOINT  ["sh","-c","java -jar ${FILE_NAME}.jar"]

# 阻止程序运行后退出
# && tail -f /dev/null
